package com.zjitc.service;

import com.zjitc.model.Page;
import com.zjitc.model.Product;

import java.util.List;

/**
 * Create by IntelliJ IDEA
 *
 * @author: lhl
 * @date-Time: 2018/4/5 0005
 * @description:
 */
public interface ProductService {

    /**
     * 最热商品
     *
     * @return
     */
    List<Product> findHot();

    /**
     * 最新商品
     *
     * @return
     */
    List<Product> findNest();

    /**
     * 返回该商品
     *
     * @param pid
     * @return
     */
    Product findByPid(String pid);

    /**
     * 返回某个分类的商品缓存分页
     *
     * @param cid
     * @param pageId
     * @param pageSize
     * @return
     */
    List<Product> findByCid(String cid, int pageId, int pageSize);

    /**
     * 分页形式返回所有商品
     *
     * @param pageNum
     * @param pageSize
     * @return
     */
    List<Product> findProducts(int pageNum, int pageSize);

    /**
     * 模糊查询以缓存分页形式返回
     *
     * @param name
     * @param pageNum
     * @param pageSize
     * @return
     */
    Page<Product> findLike(String name, int pageNum, int pageSize);

    /**
     * 查找返回秒杀商品的缓存分页
     *
     * @param flag
     * @param pageNum
     * @param pageSize
     * @return
     */
    Page<Product> findByFlag(int flag, int pageNum, int pageSize);

    /**
     * 管理员添加商品
     *
     * @param product
     */
    void add(Product product);

    /**
     * 管理员删除商品
     *
     * @param pid
     * @return
     */
    String deleteByPid(String pid);

    /**
     * 管理员修改商品
     *
     * @param product
     */
    void update(Product product);

    /**
     * 返回某个分类的缓存分页
     *
     * @param cid
     * @param pageId
     * @param pageSize
     * @return
     */
    Page<Product> findByCatchByCid(String cid, int pageId, int pageSize);
}
